'use strict';
// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
import * as vscode from 'vscode';
import { join } from 'path';
import { existsSync, writeFileSync, readFileSync, statSync } from 'fs';
import { convert, ITableConfig } from "tableconvertjs"

// this method is called when your extension is activated
// your extension is activated the very first time the command is executed
export function activate(context: vscode.ExtensionContext) {

    // Use the console to output diagnostic information (console.log) and errors (console.error)
    // This line of code will only be executed once when your extension is activated
    console.log('Congratulations, your extension "xmlsconvert" is now active!');

    // The command has been defined in the package.json file
    // Now provide the implementation of the command with  registerCommand
    // The commandId parameter must match the command field in package.json
    let disposable1 = vscode.commands.registerCommand('extension.tablec', (vp) => {
        convertActivte(vp.fsPath);
    });
    context.subscriptions.push(disposable1);
}

// this method is called when your extension is deactivated
export function deactivate() {
}

function convertActivte(path: string) {
    var _stat = statSync(path);
    if (_stat.isDirectory()) {
    } else {
        vscode.window.showErrorMessage("转表目标不是文件夹");
        return;
    }
    var configPath = join(path, "tablec.json");
    var tableConfig: ITableConfig;
    if (existsSync(configPath)) {
        tableConfig = JSON.parse(readFileSync(configPath).toString());
    } else {
        tableConfig = JSON.parse(readFileSync(join(__dirname,"default.json")).toString());
        writeFileSync(configPath, JSON.stringify(tableConfig));
    }
    try {
        convert(tableConfig, path);
        vscode.window.showInformationMessage("转表结束");
    } catch (e) {
        vscode.window.showErrorMessage(e.stack);
    }
}